{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# NLP Course 2 Week 1 Lesson : Building The Model - Lecture Exercise 01\n",
    "Estimated Time: 10 minutes\n",
    "<br>\n",
    "# Vocabulary Creation \n",
    "Create a tiny vocabulary from a tiny corpus\n",
    "<br>\n",
    "It's time to start small !\n",
    "<br>\n",
    "### Imports and Data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-04-21T14:56:31.000095Z",
     "start_time": "2021-04-21T14:56:30.496427Z"
    }
   },
   "outputs": [],
   "source": [
    "# imports\n",
    "import re # regular expression library; for tokenization of words\n",
    "from collections import Counter # collections library; counter: dict subclass for counting hashable objects\n",
    "import matplotlib.pyplot as plt # for data visualization"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-04-21T14:56:31.013128Z",
     "start_time": "2021-04-21T14:56:31.007827Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "red pink pink blue blue yellow ORANGE BLUE BLUE PINK\n",
      "string length :  52\n"
     ]
    }
   ],
   "source": [
    "# the tiny corpus of text ! \n",
    "text = 'red pink pink blue blue yellow ORANGE BLUE BLUE PINK' # 🌈\n",
    "print(text)\n",
    "print('string length : ',len(text))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Preprocessing"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-04-21T14:56:31.025028Z",
     "start_time": "2021-04-21T14:56:31.019593Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "red pink pink blue blue yellow orange blue blue pink\n",
      "string length :  52\n"
     ]
    }
   ],
   "source": [
    "# convert all letters to lower case\n",
    "text_lowercase = text.lower()\n",
    "print(text_lowercase)\n",
    "print('string length : ',len(text_lowercase))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-04-21T14:56:31.036714Z",
     "start_time": "2021-04-21T14:56:31.027009Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "['red', 'pink', 'pink', 'blue', 'blue', 'yellow', 'orange', 'blue', 'blue', 'pink']\n",
      "count :  10\n"
     ]
    }
   ],
   "source": [
    "# some regex to tokenize the string to words and return them in a list\n",
    "words = re.findall(r'\\w+', text_lowercase)\n",
    "print(words)\n",
    "print('count : ',len(words))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Create Vocabulary\n",
    "Option 1 : A set of distinct words from the text"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-04-21T14:56:31.049397Z",
     "start_time": "2021-04-21T14:56:31.039190Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "{'yellow', 'pink', 'blue', 'red', 'orange'}\n",
      "count :  5\n"
     ]
    }
   ],
   "source": [
    "# create vocab\n",
    "vocab = set(words)\n",
    "print(vocab)\n",
    "print('count : ',len(vocab))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Add Information with Word Counts\n",
    "Option 2 : Two alternatives for including the word count as well"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-04-21T14:56:31.064282Z",
     "start_time": "2021-04-21T14:56:31.053451Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "{'red': 1, 'pink': 3, 'blue': 4, 'yellow': 1, 'orange': 1}\n",
      "count :  5\n"
     ]
    }
   ],
   "source": [
    "# create vocab including word count\n",
    "counts_a = dict()\n",
    "for w in words:\n",
    "    counts_a[w] = counts_a.get(w,0)+1\n",
    "print(counts_a)\n",
    "print('count : ',len(counts_a))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-04-21T14:56:31.078572Z",
     "start_time": "2021-04-21T14:56:31.072899Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Counter({'blue': 4, 'pink': 3, 'red': 1, 'yellow': 1, 'orange': 1})\n",
      "count :  5\n"
     ]
    }
   ],
   "source": [
    "# create vocab inlcuding word count using collections.Counter\n",
    "counts_b = dict()\n",
    "counts_b = Counter(words)\n",
    "print(counts_b)\n",
    "print('count : ',len(counts_b))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-04-21T14:56:31.423354Z",
     "start_time": "2021-04-21T14:56:31.089220Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# barchart of sorted word counts\n",
    "d = {'blue': counts_b['blue'], 'pink': counts_b['pink'], 'red': counts_b['red'], 'yellow': counts_b['yellow'], 'orange': counts_b['orange']}\n",
    "plt.bar(range(len(d)), list(d.values()), align='center', color=d.keys())\n",
    "_ = plt.xticks(range(len(d)), list(d.keys()))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Ungraded Exercise\n",
    "Note that `counts_b`, above, returned by `collections.Counter` is sorted by word count\n",
    "\n",
    "Can you modify the tiny corpus of ***text*** so that a new color appears \n",
    "between ***pink*** and ***red*** in `counts_b` ?\n",
    "\n",
    "Do you need to run all the cells again, or just specific ones ? "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-04-21T14:56:31.438075Z",
     "start_time": "2021-04-21T14:56:31.432202Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "counts_b :  Counter({'blue': 4, 'pink': 3, 'red': 1, 'yellow': 1, 'orange': 1})\n",
      "count :  5\n"
     ]
    }
   ],
   "source": [
    "print('counts_b : ', counts_b)\n",
    "print('count : ', len(counts_a))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Expected Outcome:\n",
    "\n",
    "counts_b : Counter({'blue': 4, 'pink': 3, **'your_new_color_here': 2**, red': 1, 'yellow': 1, 'orange': 1})\n",
    "<br>\n",
    "count :  6"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Summary\n",
    "\n",
    "This is a tiny example but the methodology scales very well.\n",
    "<br>\n",
    "In the assignment you will create a large vocabulary of thousands of words, from a corpus\n",
    "<br>\n",
    "of tens of thousands or words! But the mechanics are exactly the same. \n",
    "<br> \n",
    "The only extra things to pay attention to will be; run time, memory management and the vocab data structure.\n",
    "<br> \n",
    "So the choice of approach used in code blocks `counts_a` vs `counts_b`, above, will be important."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.8"
  },
  "latex_envs": {
   "LaTeX_envs_menu_present": true,
   "autoclose": false,
   "autocomplete": true,
   "bibliofile": "biblio.bib",
   "cite_by": "apalike",
   "current_citInitial": 1,
   "eqLabelWithNumbers": true,
   "eqNumInitial": 1,
   "hotkeys": {
    "equation": "Ctrl-E",
    "itemize": "Ctrl-I"
   },
   "labels_anchors": false,
   "latex_user_defs": false,
   "report_style_numbering": false,
   "user_envs_cfg": false
  },
  "nbTranslate": {
   "displayLangs": [
    "*"
   ],
   "hotkey": "alt-t",
   "langInMainMenu": true,
   "sourceLang": "en",
   "targetLang": "fr",
   "useGoogleTranslate": true
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {},
   "toc_section_display": true,
   "toc_window_display": false
  },
  "varInspector": {
   "cols": {
    "lenName": 16,
    "lenType": 16,
    "lenVar": 40
   },
   "kernels_config": {
    "python": {
     "delete_cmd_postfix": "",
     "delete_cmd_prefix": "del ",
     "library": "var_list.py",
     "varRefreshCmd": "print(var_dic_list())"
    },
    "r": {
     "delete_cmd_postfix": ") ",
     "delete_cmd_prefix": "rm(",
     "library": "var_list.r",
     "varRefreshCmd": "cat(var_dic_list()) "
    }
   },
   "types_to_exclude": [
    "module",
    "function",
    "builtin_function_or_method",
    "instance",
    "_Feature"
   ],
   "window_display": false
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
